// SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd.
// SPDX-License-Identifier: MIT
package utils

import (
        "fmt"
        "net/url"
)

func ValidateURI(uri string) error {
        if uri == "" {
                return fmt.Errorf("empty URI")
        }

        u, err := url.Parse(uri)
        if err != nil {
                return fmt.Errorf("invalid URI format: %w", err)
        }

        if u.Scheme != "http" && u.Scheme != "https" {
                return fmt.Errorf("unsupported scheme: %s", u.Scheme)
        }

        if u.Host == "" {
                return fmt.Errorf("missing host in URI")
        }

        if u.Hostname() == "" {
                return fmt.Errorf("invalid hostname")
        }
        return nil
}

